System engineers may wish to model systems before building their systems. System modeling may allow these engineers to bring systems to market more quickly and at lower cost than if the systems were prototyped, redesigned, and re-prototyped during system design. These system models may include a number of system components that can include functional capabilities, such as functional capabilities to adjust a temperature setting in a model of a building climate control system. The system components may implement these functional capabilities via algorithms encoded into the system components.
System models may be designed to handle certain tasks well, such as scheduling interactions among the system components. In contrast, there may be other types of tasks for which system models may not be adapted as well, such as, for example, validation and verification, implementation and debugging algorithms that may be used inside system components, etc. Therefore, system engineers may need to get algorithms from other applications that can adequately design, verify and validate algorithms before the algorithms are used in a system model.
System engineers may need to work with someone, such as an algorithm engineer, that can adequately implement and test an algorithm. For example, the algorithm engineer may use an algorithm model to implement and test various algorithms. For example, the algorithm engineer may receive a list of characteristics for an algorithm that receives sensor inputs and produces actuator signals to drive devices that are used in a control system that includes the sensors as input devices. The algorithm engineer may realize the control algorithm using the algorithm model.
The algorithm engineer may provide the algorithm model to the system engineer, and the system engineer may manually rewrite the algorithm model into a format compatible with the system model before the system engineer can use the control algorithm in the system model. If the system engineer determines that something needs to be modified in the algorithm model, the system engineer may need to have the algorithm engineer revise the algorithm model. Then, the system engineer may manually integrate the revised algorithm model into the system model and may re-test the system model.
Manually coding and re-coding algorithm models into system models can be time consuming, prone to human error, and costly. For example, an algorithm engineer may design an algorithm model that implements a set of algorithms used to open and close jaws of a robotic arm used on a stationary robot. The algorithm model may be tested and verified in the algorithm environment and may be given to a system engineer once the algorithm model is verified. The system engineer may manually recode the algorithm model into a portion of a complete system model for the robotic arm. For example, the algorithm model may be used in a system component used to model an arm of the robot, where the arm includes the jaws. The system engineer may determine that the algorithm model needs to be revised and may explain the changes to the algorithm engineer. The algorithm engineer may revise the algorithm model and may retest and re-verify the algorithm model before providing an updated algorithm model to the system engineer. The system engineer may manually enter the updated algorithm model into the system component before modeling the entire stationary robot.